-
Notifications
You must be signed in to change notification settings - Fork 800
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Social: Fix share modal trigger presence #39135
Conversation
Thank you for your PR! When contributing to Jetpack, we have a few suggestions that can help us test and review your patch:
This comment will be updated as you work on your PR and make changes. If you think that some of those checks are not needed for your PR, please explain why you think so. Thanks for cooperation 🤖 The e2e test report can be found here. Please note that it can take a few minutes after the e2e tests checks are complete for the report to be available. Follow this PR Review Process:
Still unsure? Reach out in #jetpack-developers for guidance! |
Are you an Automattician? Please test your changes on all WordPress.com environments to help mitigate accidental explosions.
Interested in more tips and information?
|
projects/js-packages/publicize-components/src/components/share-status/modal-trigger.tsx
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Works well.
Need to test the failed share case in post publish panel
const featureFlags = useSelect( select => select( socialStore ).featureFlags(), [] ); | ||
const shareStatus = useSelect( select => select( socialStore ).getPostShareStatus(), [] ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need to check for feature flag here
const shareStatus = useSelect(
select => {
return featureFlags.useShareStatus
? select( socialStore ).getPostShareStatus()
: { shares: [] };
},
[ featureFlags.useShareStatus ]
);
// If the post is not shared anywhere, thus there are no shares, we don't need to show the trigger.
if ( ! featureFlags.useShareStatus || ! shareStatus.shares.length ) {
return null;
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we do that here, or inside the getPostShareStatus
resolver?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought we could do something like
const featureFlags = registry.select( socialStore ).featureFlags();
if ( ! featureFlags.useShareStatus ) {
dispatch( fetchPostShareStatus( postId, false ) );
return;
}
into getPostShareStatus in projects/js-packages/publicize-components/src/social-store/resolvers.js
so it's checked wherever its called
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had thought the same but it's better to keep the resolver clean.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or may be it's fine to do that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah that's true, but then we have to do that logic you mentioned everywhere 🤔 I'm not sure which one is better, I thought in the resolver it's less places to do
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, let us go with the resolver approach to do an early return based on feature flag
* Only show modal trigger if there are shares for the post * changelog * Use only socialStore
Fixes https://github.com/Automattic/jetpack-reach/issues/553
Proposed changes:
shareStatus.shares
is present and length is not 0.Other information:
Jetpack product discussion
https://github.com/Automattic/jetpack-reach/issues/553
Does this pull request change what data or activity we track or use?
No.
Testing instructions: